/**
 * @Author       : Mo 2427995270@qq.com
 * @Date         : 2024-08-15 10:56:35
 * @LastEditTime : 2024-08-15 11:22:22
 * @FilePath     : /uvdevice/apps/libs/interpolation_method.c
 * @Description  : 插值法
 * @Version      : V1.0
 * @History      : 
 * @Note         : 
 */
/***************************************Includes***********************************/
#include "interpolation_method.h"


/************************************Private Macros********************************/
//#define


/**********************************Private Statement*******************************/


/***********************************Public Variables*******************************/



/**********************************Private Variables*******************************/



/**********************************Public Functions********************************/

/**
 * @brief 线性插值法
 * @param  x1               
 * @param  y1               
 * @param  x2               
 * @param  y2               
 * @param  x                要插值的坐标点
 * @return float 插值坐标点的y值
 * @note null
 */
float im_linear_interpolation(float x1, float y1, float x2, float y2, float x) {
    if(x1 == x2)
        return y1;
    else {
        float slope = (y2 - y1) / (x2 - x1);
        float y = y1 + slope * (x - x1);
        return y;
    }
}

/**
 * @brief 线性插值法
 * @param  x1               
 * @param  y1               
 * @param  x2               
 * @param  y2               
 * @param  x                要插值的坐标点
 * @return float 插值坐标点的y值
 * @note null
 */
double im_linear_interpolation_d(double x1, double y1, double x2, double y2, double x) {
    if(x1 == x2)
        return y1;
    else {
        double slope = (y2 - y1) / (x2 - x1);
        double y = y1 + slope * (x - x1);
        return y;
    }
}


/**********************************Private Functions*******************************/


/* [] END OF FILE */
